widget: Only start/stop idle sizers for toplevels
authorBenjamin Otte <otte@redhat.com>
Wed, 11 Apr 2018 01:08:55 +0000 (03:08 +0200)
committerBenjamin Otte <otte@redhat.com>
Wed, 11 Apr 2018 01:16:34 +0000 (03:16 +0200)
They are the only widgets that have idle sizers.

gtk/gtkwidget.c

index bf958a1be781e9e0a7952b136aa57275484c8e5a..9bfbffa95eadbcac3da896433eb757f780068c85 100644 (file)
@@ -3694,7 +3694,7 @@ gtk_widget_connect_frame_clock (GtkWidget *widget)
   GtkWidgetPrivate *priv = widget->priv;
   GdkFrameClock *frame_clock;
 
-  if (GTK_IS_CONTAINER (widget))
+  if (_gtk_widget_is_toplevel (widget))
     gtk_container_start_idle_sizer (GTK_CONTAINER (widget));
 
   frame_clock = gtk_widget_get_frame_clock (widget);
@@ -3718,7 +3718,7 @@ gtk_widget_disconnect_frame_clock (GtkWidget *widget)
 {
   GtkWidgetPrivate *priv = widget->priv;
 
-  if (GTK_IS_CONTAINER (widget))
+  if (_gtk_widget_is_toplevel (widget))
     gtk_container_stop_idle_sizer (GTK_CONTAINER (widget));
 
   gtk_css_node_invalidate_frame_clock (priv->cssnode, FALSE);